Matlab Simulink设计滤波器

您所在的位置:网站首页 simulink butterworth滤波器 Matlab Simulink设计滤波器

Matlab Simulink设计滤波器

2023-10-10 03:30| 来源: 网络整理| 查看: 265

项目需求,制作滤波器,MATLAB先仿真,以下为记录做了修改,不涉及公司项目信息。

一、Matlab设计滤波器 Matlab牛逼之处就不多说了,使用Matlab设计20-200hz带通滤波器过程如下: 1.首先设计一个滤波器:打开Matlab,在命令行窗口键入"fdatool"等待软件打开滤波器设计工具窗口。(或“filterDesigner”) 在这里插入图片描述 2.在滤波器设计窗口填写相关滤波器参数。 1.Specify order 为滤波阶数,滤波阶数越高滤波效果越好,运算量自然也会变大。 2.采样频率Fs,我需要滤的波时44.1khz的波,可通过的频率Fc1:20hz - Fc2:200hz,其它频率滤掉。 3.Group Delay 窗是滤波器滤波器群延迟,会导致滤波后的相位有差别,群延迟为滤波阶数的一半个采样点。 4.Magnitude Response窗口可以查看不同频率通过滤波器后信号衰减程度。 在这里插入图片描述 到此我们就设计好了滤波器。保留滤波器设计窗口,下面使用Simulink设计信号发生器并导入上步骤设计的滤波器,并将滤波前和滤波后的信号显示出来。设计生成采样率为44.1k的50hz正弦波和300hz正弦波,并将两个波形叠加,然后使用设计的滤波器滤波,查看是否可以将300hz的信号过滤掉。

二、Simulink可视化仿真 1.打开Simulink 在这里插入图片描述 2.Start界面创建一个模型 在这里插入图片描述 打开后设计页面如下,我需要我们自己选托选模块在这里插入图片描述 3.打开Library Browser选择模块页,并选择Sine Wave 在这里插入图片描述 如下图,有很多种模块可选,将“Sine Wave”拖入打开的空白设计窗内即可(同理可以找到/搜索到其它模块) 在这里插入图片描述 4.双击模块填写设计参数,注意Frequency是弧度/秒,ω=2π/t=2πf。 在这里插入图片描述

5.导入自己设计的滤波器模块 还记得设计滤波器的窗口吗?选择设计滤波器Filter Desinger窗口,将设计好的滤波器导入到Simulink Model中 在这里插入图片描述 填写参数,并导出到Simulink 在这里插入图片描述 点击“Realize Model”后Simulink窗口会自动出现名为指定名称的模块。接下来就是添加300hz正弦发生器、add模块、和scope模块,左后连接起来。(这些都可以在现有模块中找到,其实滤波器也有,只不过我们要验证一些内容,要手动做并生成一个示波器模块)。

6.完整设计连接后如下图。 Add模块在Simlink/Math Operation/Add Scope模块在Simlink/Commonly Used Block/ (或者直接在搜索框中搜索) 在这里插入图片描述

7.配置参数,点击窗口标签栏的小齿轮或者Simulation->Modle Configuration Paramters,填写参数。设计中运行0.2ms,即生成0.2ms的数据叠加并滤波。 在这里插入图片描述

8.双击scope窗口,弹出scope页面,并点击Run运行,查看50hz原始波形,300hz原始波形,叠加后的波形,滤波后的波形(View->Layout可以铺开窗口)。如下图,关注信号是否正确叠加,经过滤波器滤波后是否可以将300hz的信号滤掉,只剩下50hz的信号。 在这里插入图片描述

结果: 如图,50hz 300hz叠加后的波形经过滤波器后,300hz的部分被滤掉,只剩下50hz波形。滤波后相位不同步是因为滤波器群延迟问题。滤波是否干净和滤波器设计的滤波阶数(order 700)有关,滤波阶数越大滤波效果越好,同时计算量也会变大。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3